home *** CD-ROM | disk | FTP | other *** search
/ Erotic Games: Memory / Erotic Games: Memory.iso / mac / air_installers / AdobeAIR.exe / setup.swf / scripts / mx / controls / Text.as < prev    next >
Text File  |  2009-02-12  |  5KB  |  165 lines

  1. package mx.controls
  2. {
  3.    import mx.core.UITextField;
  4.    import mx.core.mx_internal;
  5.    import mx.events.FlexEvent;
  6.    
  7.    use namespace mx_internal;
  8.    
  9.    public class Text extends Label
  10.    {
  11.       
  12.       mx_internal static const VERSION:String = "3.0.0.0";
  13.        
  14.       
  15.       private var widthChanged:Boolean = true;
  16.       
  17.       private var lastUnscaledWidth:Number = NaN;
  18.       
  19.       public function Text()
  20.       {
  21.          super();
  22.          selectable = true;
  23.          truncateToFit = false;
  24.          addEventListener(FlexEvent.UPDATE_COMPLETE,updateCompleteHandler);
  25.       }
  26.       
  27.       private function measureUsingWidth(param1:Number) : void
  28.       {
  29.          var _loc2_:Number = NaN;
  30.          var _loc3_:Number = NaN;
  31.          var _loc5_:Number = NaN;
  32.          var _loc6_:Boolean = false;
  33.          _loc2_ = getStyle("paddingLeft");
  34.          _loc3_ = getStyle("paddingTop");
  35.          var _loc4_:Number = getStyle("paddingRight");
  36.          _loc5_ = getStyle("paddingBottom");
  37.          textField.validateNow();
  38.          textField.autoSize = "left";
  39.          if(!isNaN(param1))
  40.          {
  41.             textField.width = param1 - _loc2_ - _loc4_;
  42.             measuredWidth = Math.ceil(textField.textWidth) + UITextField.TEXT_WIDTH_PADDING;
  43.             measuredHeight = Math.ceil(textField.textHeight) + UITextField.TEXT_HEIGHT_PADDING;
  44.          }
  45.          else
  46.          {
  47.             _loc6_ = textField.wordWrap;
  48.             textField.wordWrap = false;
  49.             measuredWidth = Math.ceil(textField.textWidth) + UITextField.TEXT_WIDTH_PADDING;
  50.             measuredHeight = Math.ceil(textField.textHeight) + UITextField.TEXT_HEIGHT_PADDING;
  51.             textField.wordWrap = _loc6_;
  52.          }
  53.          textField.autoSize = "none";
  54.          measuredWidth += _loc2_ + _loc4_;
  55.          measuredHeight += _loc3_ + _loc5_;
  56.          if(isNaN(explicitWidth))
  57.          {
  58.             measuredMinWidth = DEFAULT_MEASURED_MIN_WIDTH;
  59.             measuredMinHeight = DEFAULT_MEASURED_MIN_HEIGHT;
  60.          }
  61.          else
  62.          {
  63.             measuredMinWidth = measuredWidth;
  64.             measuredMinHeight = measuredHeight;
  65.          }
  66.       }
  67.       
  68.       override public function set percentWidth(param1:Number) : void
  69.       {
  70.          if(param1 != percentWidth)
  71.          {
  72.             widthChanged = true;
  73.             invalidateProperties();
  74.             invalidateSize();
  75.          }
  76.          super.percentWidth = param1;
  77.       }
  78.       
  79.       override public function set explicitWidth(param1:Number) : void
  80.       {
  81.          if(param1 != explicitWidth)
  82.          {
  83.             widthChanged = true;
  84.             invalidateProperties();
  85.             invalidateSize();
  86.          }
  87.          super.explicitWidth = param1;
  88.       }
  89.       
  90.       private function updateCompleteHandler(param1:FlexEvent) : void
  91.       {
  92.          lastUnscaledWidth = NaN;
  93.       }
  94.       
  95.       override protected function childrenCreated() : void
  96.       {
  97.          super.childrenCreated();
  98.          textField.wordWrap = true;
  99.          textField.multiline = true;
  100.          textField.mouseWheelEnabled = false;
  101.       }
  102.       
  103.       override protected function commitProperties() : void
  104.       {
  105.          super.commitProperties();
  106.          if(widthChanged)
  107.          {
  108.             textField.wordWrap = !isNaN(percentWidth) || !isNaN(explicitWidth);
  109.             widthChanged = false;
  110.          }
  111.       }
  112.       
  113.       override protected function updateDisplayList(param1:Number, param2:Number) : void
  114.       {
  115.          var _loc7_:Boolean = false;
  116.          if(isSpecialCase())
  117.          {
  118.             _loc7_ = isNaN(lastUnscaledWidth) || lastUnscaledWidth != param1;
  119.             lastUnscaledWidth = param1;
  120.             if(_loc7_)
  121.             {
  122.                invalidateSize();
  123.                return;
  124.             }
  125.          }
  126.          var _loc3_:Number = getStyle("paddingLeft");
  127.          var _loc4_:Number = getStyle("paddingTop");
  128.          var _loc5_:Number = getStyle("paddingRight");
  129.          var _loc6_:Number = getStyle("paddingBottom");
  130.          textField.setActualSize(param1 - _loc3_ - _loc5_,param2 - _loc4_ - _loc6_);
  131.          textField.x = _loc3_;
  132.          textField.y = _loc4_;
  133.          if(Math.floor(width) < Math.floor(measuredWidth))
  134.          {
  135.             textField.wordWrap = true;
  136.          }
  137.       }
  138.       
  139.       override protected function measure() : void
  140.       {
  141.          if(isSpecialCase())
  142.          {
  143.             if(!isNaN(lastUnscaledWidth))
  144.             {
  145.                measureUsingWidth(lastUnscaledWidth);
  146.             }
  147.             else
  148.             {
  149.                measuredWidth = 0;
  150.                measuredHeight = 0;
  151.             }
  152.             return;
  153.          }
  154.          measureUsingWidth(explicitWidth);
  155.       }
  156.       
  157.       private function isSpecialCase() : Boolean
  158.       {
  159.          var _loc1_:Number = getStyle("left");
  160.          var _loc2_:Number = getStyle("right");
  161.          return (!isNaN(percentWidth) || !isNaN(_loc1_) && !isNaN(_loc2_)) && isNaN(explicitHeight) && isNaN(percentHeight);
  162.       }
  163.    }
  164. }
  165.